Commit 763a3944

mo khan <mo@mokhan.ca>
2014-07-06 04:52:32
define content region and use region manager to swap in new views.
1 parent e8698a9
Changed files (4)
app/assets/javascripts/backbone/routers/cakes_router.js.coffee
@@ -8,24 +8,24 @@ class CakeSide.Routers.CakesRouter extends Backbone.Router
   index: ->
     CakeSide.Application.request('CommentView').hide()
     @view = new CakeSide.Views.Cakes.IndexView(collection: CakeSide.Application.request('CakesRepository'))
-    $("#backbone-content").html(@view.render().el)
+    CakeSide.Application.content_region.show(@view)
 
   show: (id) ->
     cake = CakeSide.Application.request('CakesRepository').get(id)
     @view = new CakeSide.Views.Cakes.ShowView(model: cake)
+    CakeSide.Application.content_region.show(@view)
     CakeSide.Application.request('CommentView').render
       identifier: "c-#{cake.id}"
       title: cake.get('name')
       url: cake.public_url()
-    $("#backbone-content").html(@view.render().el)
 
   newCake: ->
     CakeSide.Application.request('CommentView').hide()
     @view = new CakeSide.Views.Cakes.NewView(collection: CakeSide.Application.request('CakesRepository'))
-    $("#backbone-content").html(@view.render().el)
+    CakeSide.Application.content_region.show(@view)
 
   edit: (id) ->
     CakeSide.Application.request('CommentView').hide()
     cake = CakeSide.Application.request('CakesRepository').get(id)
     @view = new CakeSide.Views.Cakes.EditView(model: cake)
-    $("#backbone-content").html(@view.render().el)
+    CakeSide.Application.content_region.show(@view)
app/assets/javascripts/backbone/routers/photos_router.js.coffee
@@ -14,8 +14,8 @@ class CakeSide.Routers.PhotosRouter extends Backbone.Router
     photo.fetch()
     cake = CakeSide.Application.request('CakesRepository').get(cake_id)
     @view = new CakeSide.Views.Photos.ShowView(model: photo, collection: @photos)
+    CakeSide.Application.content_region.show(@view)
     CakeSide.Application.request('CommentView').render
       identifier: "c-#{cake_id}"
       title: cake.get('name')
       url: cake.public_url()
-    $("#backbone-content").html(@view.render().el)
app/assets/javascripts/backbone/cakeside.js.coffee
@@ -15,6 +15,10 @@ window.CakeSide =
         xhr.setRequestHeader "Authorization", "Token token=#{data.access_token}"
 
     CakeSide.Application = new Marionette.Application()
+    CakeSide.Application.addRegions
+      content_region: '#backbone-content'
+      comment_region: '#disqus_thread'
+
     CakeSide.Application.addInitializer (options) ->
       new CakeSide.Routers.CakesRouter()
       new CakeSide.Routers.PhotosRouter()
app/views/my/cakes/index.html.erb
@@ -16,5 +16,5 @@
 
 <%= render partial: "shared/account_nav", locals: { selected: :creations } %>
 <div id="backbone-content"></div>
-<div id="modal" class="modal hide fade"></div>
 <div id="disqus_thread"></div>
+<div id="modal" class="modal hide fade"></div>