summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/backbone/controllers/tutorials_controller.js.coffee9
-rw-r--r--app/assets/javascripts/backbone/routers/tutorials_router.js.coffee1
-rw-r--r--app/assets/javascripts/backbone/templates/tutorials/show.jst.ejs16
-rw-r--r--app/assets/javascripts/backbone/views/tutorials/show_view.js.coffee7
4 files changed, 33 insertions, 0 deletions
diff --git a/app/assets/javascripts/backbone/controllers/tutorials_controller.js.coffee b/app/assets/javascripts/backbone/controllers/tutorials_controller.js.coffee
index 5114f4af..ae1a626f 100644
--- a/app/assets/javascripts/backbone/controllers/tutorials_controller.js.coffee
+++ b/app/assets/javascripts/backbone/controllers/tutorials_controller.js.coffee
@@ -15,6 +15,15 @@ class CakeSide.Controllers.TutorialsController extends Marionette.Controller
@comment_view.hide()
@content_region.show(new @views.NewView(collection: @tutorials))
+ show: (id) ->
+ @selectTab()
+ tutorial = @tutorials.get(id)
+ @content_region.show(new @views.ShowView(model: tutorial))
+ @comment_view.render
+ identifier: "t-#{tutorial.id}"
+ title: tutorial.get('name')
+ url: tutorial.public_url()
+
selectTab: ->
$('.nav-list').children().removeClass('active')
$('#tutorial-tab').addClass('active')
diff --git a/app/assets/javascripts/backbone/routers/tutorials_router.js.coffee b/app/assets/javascripts/backbone/routers/tutorials_router.js.coffee
index fa6feb45..9c942e88 100644
--- a/app/assets/javascripts/backbone/routers/tutorials_router.js.coffee
+++ b/app/assets/javascripts/backbone/routers/tutorials_router.js.coffee
@@ -2,3 +2,4 @@ class CakeSide.Routers.TutorialsRouter extends Marionette.AppRouter
appRoutes:
"tutorials": "index"
"tutorials/new": "new"
+ "tutorials/:id": "show"
diff --git a/app/assets/javascripts/backbone/templates/tutorials/show.jst.ejs b/app/assets/javascripts/backbone/templates/tutorials/show.jst.ejs
new file mode 100644
index 00000000..a0ebe2b9
--- /dev/null
+++ b/app/assets/javascripts/backbone/templates/tutorials/show.jst.ejs
@@ -0,0 +1,16 @@
+<div class="row-fluid">
+ <div class="span12">
+ <h3><a href="#tutorials/<%= id %>"><%= heading %></a> <small><%= displayDate(created_at) %></small></h3>
+ <a href="#tutorials/<%= id %>">
+ <img src="<%= image_url %>" />
+ </a>
+ <p>
+ <% _.each(tags, function(tag) { %>
+ <a href="/tt/<%= tag.name %>">
+ <span class="label"><%= tag.name %></span>
+ </a>
+ <% }); %>
+ </p>
+ <p><%= description %></p>
+ </div>
+</div>
diff --git a/app/assets/javascripts/backbone/views/tutorials/show_view.js.coffee b/app/assets/javascripts/backbone/views/tutorials/show_view.js.coffee
new file mode 100644
index 00000000..9f6ef782
--- /dev/null
+++ b/app/assets/javascripts/backbone/views/tutorials/show_view.js.coffee
@@ -0,0 +1,7 @@
+CakeSide.Views.Tutorials ||= {}
+
+class CakeSide.Views.Tutorials.ShowView extends Marionette.ItemView
+ template: JST["backbone/templates/tutorials/show"]
+ templateHelpers:
+ displayDate: (date) ->
+ date