diff --git a/cps/static/css/style.css b/cps/static/css/style.css
index 8b299002..47ad9e24 100644
--- a/cps/static/css/style.css
+++ b/cps/static/css/style.css
@@ -53,3 +53,6 @@ span.glyphicon.glyphicon-tags {padding-right: 5px;color: #999;vertical-align: te
.spinner2 {margin:0 41%;}
.block-label {display: block;}
+
+.author-bio img {margin: 0 1em 1em 0;}
+.author-link img {display: inline-block;max-width: 100px;}
\ No newline at end of file
diff --git a/cps/static/img/goodreads.svg b/cps/static/img/goodreads.svg
new file mode 100644
index 00000000..f89130e9
--- /dev/null
+++ b/cps/static/img/goodreads.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/cps/static/js/main.js b/cps/static/js/main.js
index d759a3b8..6c41bdf2 100644
--- a/cps/static/js/main.js
+++ b/cps/static/js/main.js
@@ -2,6 +2,20 @@ var displaytext;
var updateTimerID;
var updateText;
+// Generic control/related handler to show/hide fields based on a checkbox' value
+// e.g.
+//
+//
...
+$(document).on("change", "input[type=\"checkbox\"][data-control]", function () {
+ var $this = $(this);
+ var name = $this.data("control");
+ var showOrHide = $this.prop("checked");
+
+ $("[data-related=\""+name+"\"]").each(function () {
+ $(this).toggle(showOrHide);
+ });
+});
+
$(function() {
function restartTimer() {
@@ -121,6 +135,8 @@ $(function() {
});
});
+ $("input[data-control]").trigger("change");
+
$(window).resize(function(event) {
$(".discover .row").isotope("reLayout");
});
diff --git a/cps/templates/author.html b/cps/templates/author.html
new file mode 100644
index 00000000..4d194f99
--- /dev/null
+++ b/cps/templates/author.html
@@ -0,0 +1,65 @@
+{% extends "layout.html" %}
+{% block body %}
+
{{title}}
+
+{% if author is not none %}
+
+ {%if author['image_url'] is not none %}
+
+ {% endif %}
+
+ {%if author.about is not none %}
+
+ {% for author in entry.authors %}
+ {{author.name}}
+ {% if not loop.last %}
+ &
+ {% endif %}
+ {% endfor %}
+
+ {% if entry.ratings.__len__() > 0 %}
+
+ {% for number in range((entry.ratings[0].rating/2)|int(2)) %}
+
+ {% if loop.last and loop.index < 5 %}
+ {% for numer in range(5 - loop.index) %}
+
+ {% endfor %}
+ {% endif %}
+ {% endfor %}
+