diff options
| author | mo khan <mo@mokhan.ca> | 2014-07-08 22:30:18 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2014-07-08 22:30:18 -0600 |
| commit | 7757b66ae7fc6fa13fc5b59bc19495107d8eec45 (patch) | |
| tree | f19a6724f4448d907726866aa682d7322b6cbf24 /app/assets/javascripts | |
| parent | 21f849302106a09b5c5f368f652bb1fd9a98174e (diff) | |
add a my#tutorials tab.
Diffstat (limited to 'app/assets/javascripts')
10 files changed, 54 insertions, 1 deletions
diff --git a/app/assets/javascripts/backbone/cakeside.js.coffee b/app/assets/javascripts/backbone/cakeside.js.coffee index 3de029c5..a601d382 100644 --- a/app/assets/javascripts/backbone/cakeside.js.coffee +++ b/app/assets/javascripts/backbone/cakeside.js.coffee @@ -26,6 +26,8 @@ window.CakeSide = controller: new CakeSide.Controllers.CakesController() new CakeSide.Routers.PhotosRouter controller: new CakeSide.Controllers.PhotosController() + new CakeSide.Routers.TutorialsRouter + controller: new CakeSide.Controllers.TutorialsController() CakeSide.Application.on 'start', -> if Backbone.history @@ -34,6 +36,8 @@ window.CakeSide = @cakes = new CakeSide.Collections.CakesCollection() @categories = new CakeSide.Collections.CategoriesCollection() @categories.fetch(reset: true) + @tutorials = new CakeSide.Collections.TutorialsCollection() + @tutorials.fetch(reset: true) @disqus_view = new CakeSide.Views.DisqusView disqus_shortname: data.disqus_shortname @@ -52,6 +56,8 @@ window.CakeSide = @photos_cache[cake_id] = photos photos.fetch(reset: true) photos + CakeSide.Application.reqres.setHandler 'TutorialsRepository', => + @tutorials @cakes.fetch(reset: true).done -> CakeSide.Application.start() diff --git a/app/assets/javascripts/backbone/controllers/tutorials_controller.js.coffee b/app/assets/javascripts/backbone/controllers/tutorials_controller.js.coffee new file mode 100644 index 00000000..86d84d5b --- /dev/null +++ b/app/assets/javascripts/backbone/controllers/tutorials_controller.js.coffee @@ -0,0 +1,8 @@ +class CakeSide.Controllers.TutorialsController extends Marionette.Controller + views: CakeSide.Views.Tutorials + initialize: (options) -> + @content_region = CakeSide.Application.content_region + @tutorials = CakeSide.Application.request('TutorialsRepository') + + index: -> + @content_region.show(new @views.IndexView(collection: @tutorials)) diff --git a/app/assets/javascripts/backbone/models/tutorials.js.coffee b/app/assets/javascripts/backbone/models/tutorials.js.coffee new file mode 100644 index 00000000..d7eb524b --- /dev/null +++ b/app/assets/javascripts/backbone/models/tutorials.js.coffee @@ -0,0 +1,9 @@ +class CakeSide.Models.Tutorial extends Backbone.Model + paramRoot: 'tutorial' + + defaults: + id: null + +class CakeSide.Collections.TutorialsCollection extends Backbone.Collection + model: CakeSide.Models.Tutorial + url: '/api/v1/tutorials' diff --git a/app/assets/javascripts/backbone/routers/cakes_router.js.coffee b/app/assets/javascripts/backbone/routers/cakes_router.js.coffee index 95901c0e..c418a22e 100644 --- a/app/assets/javascripts/backbone/routers/cakes_router.js.coffee +++ b/app/assets/javascripts/backbone/routers/cakes_router.js.coffee @@ -4,4 +4,3 @@ class CakeSide.Routers.CakesRouter extends Marionette.AppRouter "cakes/:id/edit": "edit" "cakes/:id": "show" "cakes": "index" - diff --git a/app/assets/javascripts/backbone/routers/tutorials_router.js.coffee b/app/assets/javascripts/backbone/routers/tutorials_router.js.coffee new file mode 100644 index 00000000..a7e6ec36 --- /dev/null +++ b/app/assets/javascripts/backbone/routers/tutorials_router.js.coffee @@ -0,0 +1,3 @@ +class CakeSide.Routers.TutorialsRouter extends Marionette.AppRouter + appRoutes: + "tutorials": "index" diff --git a/app/assets/javascripts/backbone/templates/tutorials/no_tutorials.jst.ejs b/app/assets/javascripts/backbone/templates/tutorials/no_tutorials.jst.ejs new file mode 100644 index 00000000..ab9705b1 --- /dev/null +++ b/app/assets/javascripts/backbone/templates/tutorials/no_tutorials.jst.ejs @@ -0,0 +1 @@ +<p>You have no tutorials. <a href="#tutorials/new">Get Started</a></p> diff --git a/app/assets/javascripts/backbone/templates/tutorials/tutorial.jst.ejs b/app/assets/javascripts/backbone/templates/tutorials/tutorial.jst.ejs new file mode 100644 index 00000000..4c10d825 --- /dev/null +++ b/app/assets/javascripts/backbone/templates/tutorials/tutorial.jst.ejs @@ -0,0 +1,7 @@ +<div class="thumbnail"> + <a href="#tutorials/<%= id %>"><img src="<%= image_url %>" /></a> + <div class="caption"> + <h3><a href="#tutorials/<%= id %>"><%= heading %></a></h3> + <p><%= description %></p> + </div> +</div> diff --git a/app/assets/javascripts/backbone/views/tutorials/index_view.js.coffee b/app/assets/javascripts/backbone/views/tutorials/index_view.js.coffee new file mode 100644 index 00000000..fffb2252 --- /dev/null +++ b/app/assets/javascripts/backbone/views/tutorials/index_view.js.coffee @@ -0,0 +1,9 @@ +#= require backbone/views/tutorials/no_tutorials_view +#= require backbone/views/tutorials/tutorial_view +CakeSide.Views.Tutorials ||= {} + +class CakeSide.Views.Tutorials.IndexView extends Marionette.CollectionView + childView: CakeSide.Views.Tutorials.TutorialView + emptyView: CakeSide.Views.Tutorials.NoTutorialsView + className: 'thumbnails' + tagName: 'ul' diff --git a/app/assets/javascripts/backbone/views/tutorials/no_tutorials_view.js.coffee b/app/assets/javascripts/backbone/views/tutorials/no_tutorials_view.js.coffee new file mode 100644 index 00000000..77b2e71c --- /dev/null +++ b/app/assets/javascripts/backbone/views/tutorials/no_tutorials_view.js.coffee @@ -0,0 +1,5 @@ +CakeSide.Views.Tutorials ||= {} + +class CakeSide.Views.Tutorials.NoTutorialsView extends Marionette.ItemView + template: JST['backbone/templates/tutorials/no_tutorials'] + tagName: 'li' diff --git a/app/assets/javascripts/backbone/views/tutorials/tutorial_view.js.coffee b/app/assets/javascripts/backbone/views/tutorials/tutorial_view.js.coffee new file mode 100644 index 00000000..addc5b2f --- /dev/null +++ b/app/assets/javascripts/backbone/views/tutorials/tutorial_view.js.coffee @@ -0,0 +1,6 @@ +CakeSide.Views.Tutorials ||= {} + +class CakeSide.Views.Tutorials.TutorialView extends Marionette.ItemView + template: JST['backbone/templates/tutorials/tutorial'] + tagName: 'li' + className: 'span3' |
