summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2013-09-15 16:57:53 -0700
committerJesse Morgan <jesse@jesterpm.net>2013-09-15 16:57:53 -0700
commitaf7517c44c967ca29e12df52d2fe13b2a067c5fe (patch)
treef56b37a3f93ac70e13259e9d404c2122b6a332a0
parent24c7b528897bac34854cdededeb6baf61038a031 (diff)
Adding Introduction Chapter.
Introduction chapter is always required and thus after the assessment the user is taken directly to the introduction. After the introduction training continues with whichever section the user assessed in to.
-rw-r--r--devfiles/videos/chapter/chapter-number.json8
-rw-r--r--devfiles/videos/introduction/intro-1.json8
-rw-r--r--src/com/p4square/grow/backend/resources/TrainingRecordResource.java13
-rw-r--r--src/com/p4square/grow/frontend/ChapterCompletePage.java8
-rw-r--r--src/com/p4square/grow/frontend/TrainingPageResource.java8
-rw-r--r--src/templates/templates/assessment-results.ftl2
-rw-r--r--src/templates/templates/training.ftl13
7 files changed, 39 insertions, 21 deletions
diff --git a/devfiles/videos/chapter/chapter-number.json b/devfiles/videos/chapter/chapter-number.json
deleted file mode 100644
index 4b0a626..0000000
--- a/devfiles/videos/chapter/chapter-number.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "id": "chapter-number",
- "number": "Number",
- "title": "Title",
- "length": Length (seconds),
- "pdf": "http://foursquaregrow.s3-website-us-east-1.amazonaws.com/PDF",
- "urls": [{"src":"http://foursquaregrow.s3-website-us-east-1.amazonaws.com/H.264%20File", "type":"video/mp4"}]
-} \ No newline at end of file
diff --git a/devfiles/videos/introduction/intro-1.json b/devfiles/videos/introduction/intro-1.json
new file mode 100644
index 0000000..4c1ba09
--- /dev/null
+++ b/devfiles/videos/introduction/intro-1.json
@@ -0,0 +1,8 @@
+{
+ "id": "intro-1",
+ "number": "1",
+ "title": "Introduction",
+ "length": 140,
+ "pdf": "http://foursquaregrow.s3-website-us-east-1.amazonaws.com/Grow%20-%20Introduction.pdf",
+ "urls": [{"src":"http://foursquaregrow.s3-website-us-east-1.amazonaws.com/Grow%20-%20Introduction.mov", "type":"video/mp4"}]
+}
diff --git a/src/com/p4square/grow/backend/resources/TrainingRecordResource.java b/src/com/p4square/grow/backend/resources/TrainingRecordResource.java
index 8447c16..009d0fe 100644
--- a/src/com/p4square/grow/backend/resources/TrainingRecordResource.java
+++ b/src/com/p4square/grow/backend/resources/TrainingRecordResource.java
@@ -32,7 +32,7 @@ import com.p4square.grow.backend.db.CassandraDatabase;
* @author Jesse Morgan <jesse@jesterpm.net>
*/
public class TrainingRecordResource extends ServerResource {
- private static final String[] CHAPTERS = { "seeker", "believer", "disciple", "teacher" };
+ private static final String[] CHAPTERS = { "introduction", "seeker", "believer", "disciple", "teacher" };
private static final Logger LOG = Logger.getLogger(TrainingRecordResource.class);
private static final ObjectMapper MAPPER = new ObjectMapper();
@@ -211,8 +211,15 @@ public class TrainingRecordResource extends ServerResource {
// Get videos for each section and build playlist
for (String chapter : CHAPTERS) {
- // Chapter required if the floor of the score is <= the chapter's numeric value.
- boolean required = score < Score.numericScore(chapter) + 1;
+ boolean required;
+
+ if ("introduction".equals(chapter)) {
+ // Introduction chapter is always required
+ required = true;
+ } else {
+ // Chapter required if the floor of the score is <= the chapter's numeric value.
+ required = score < Score.numericScore(chapter) + 1;
+ }
ColumnList<String> row = mDb.getRow("strings", "/training/" + chapter);
if (!row.isEmpty()) {
diff --git a/src/com/p4square/grow/frontend/ChapterCompletePage.java b/src/com/p4square/grow/frontend/ChapterCompletePage.java
index 5cc4724..efcde38 100644
--- a/src/com/p4square/grow/frontend/ChapterCompletePage.java
+++ b/src/com/p4square/grow/frontend/ChapterCompletePage.java
@@ -102,6 +102,14 @@ public class ChapterCompletePage extends FreeMarkerPageResource {
}
}
+ // Skip the chapter complete message for "Introduction"
+ if ("introduction".equals(mChapter)) {
+ String nextPage = mConfig.getString("dynamicRoot", "");
+ nextPage += "/account/training/" + nextChapter;
+ getResponse().redirectSeeOther(nextPage);
+ return new StringRepresentation("Redirecting to " + nextPage);
+ }
+
root.put("stage", mChapter);
root.put("nextstage", nextChapter);
return new TemplateRepresentation(t, root, MediaType.TEXT_HTML);
diff --git a/src/com/p4square/grow/frontend/TrainingPageResource.java b/src/com/p4square/grow/frontend/TrainingPageResource.java
index 61dcce0..6a0fc10 100644
--- a/src/com/p4square/grow/frontend/TrainingPageResource.java
+++ b/src/com/p4square/grow/frontend/TrainingPageResource.java
@@ -96,8 +96,8 @@ public class TrainingPageResource extends FreeMarkerPageResource {
}
if (mChapter == null) {
- // Everything is completed... send them back to seeker.
- mChapter = "seeker";
+ // Everything is completed... send them back to introduction.
+ mChapter = "introduction";
}
String nextPage = mConfig.getString("dynamicRoot", "");
@@ -185,8 +185,10 @@ public class TrainingPageResource extends FreeMarkerPageResource {
return 3;
} else if ("believer".equals(chapter)) {
return 2;
- } else {
+ } else if ("seeker".equals(chapter)) {
return 1;
+ } else {
+ return 0;
}
}
}
diff --git a/src/templates/templates/assessment-results.ftl b/src/templates/templates/assessment-results.ftl
index 2bbe8a5..95ee7af 100644
--- a/src/templates/templates/assessment-results.ftl
+++ b/src/templates/templates/assessment-results.ftl
@@ -27,7 +27,7 @@
</@content>
<div id="getstarted">
- <a class="greenbutton" href="${dynamicRoot}/account/training/${stage?lower_case}">Begin GROWing &#x2799;</a>
+ <a class="greenbutton" href="${dynamicRoot}/account/training/introduction">Begin GROWing &#x2799;</a>
</div>
</@commonpage>
diff --git a/src/templates/templates/training.ftl b/src/templates/templates/training.ftl
index a2bf5ea..62379a7 100644
--- a/src/templates/templates/training.ftl
+++ b/src/templates/templates/training.ftl
@@ -11,17 +11,18 @@
<div id="progressbar">
<#switch chapter>
- <#case "seeker"><#assign overallProgress = 0><#break>
- <#case "believer"><#assign overallProgress = 25><#break>
- <#case "disciple"><#assign overallProgress = 50><#break>
- <#case "teacher"><#assign overallProgress = 75><#break>
+ <#case "introduction"><#assign overallProgress = 0><#break>
+ <#case "seeker"><#assign overallProgress = 20><#break>
+ <#case "believer"><#assign overallProgress = 40><#break>
+ <#case "disciple"><#assign overallProgress = 60><#break>
+ <#case "teacher"><#assign overallProgress = 80><#break>
</#switch>
<div class="progress" style="width: ${overallProgress}%"></div>
</div>
<div id="content">
<nav>
- <#assign chapters = ["seeker", "believer", "disciple", "teacher"]>
+ <#assign chapters = ["introduction", "seeker", "believer", "disciple", "teacher"]>
<#list chapters as x>
<a href="${dynamicRoot}/account/training/${x}" <#if x == chapter>class="current"</#if>>${x?capitalize}</a>
<#if x_has_next> - </#if>
@@ -41,7 +42,7 @@
<h2>${video.title}</h2>
<span class="duration"><@hms seconds=video.length /></span>
<#if (video.pdf!"") != "">
- <span class="pdf"><a href="${video.pdf}">Outline</a></span>
+ <span class="pdf"><a href="${video.pdf}" target="_blank">Outline</a></span>
</#if>
</article>
</#list>