Commit 58466d1d

mo khan <mo@mokhan.ca>
2014-06-27 04:02:05
initialize marionette application and inject cake collection in container.
1 parent 74b75d8
Changed files (2)
app
assets
javascripts
app/assets/javascripts/backbone/routers/cakes_router.js.coffee
@@ -1,9 +1,4 @@
 class Cake.Routers.CakesRouter extends Backbone.Router
-  initialize: (options) ->
-    @cakes = new Cake.Collections.CakesCollection()
-    @cakes.fetch(reset: true).done ->
-      Backbone.history.start()
-
   routes:
     "new"      : "newCake"
     "index"    : "index"
@@ -11,21 +6,21 @@ class Cake.Routers.CakesRouter extends Backbone.Router
     ":id"      : "show"
     ".*"       : "index"
 
-  newCake: ->
-    @view = new Cake.Views.Cakes.NewView(collection: @cakes)
-    $("#backbone-content").html(@view.render().el)
-
   index: ->
-    @view = new Cake.Views.Cakes.IndexView(collection: @cakes)
+    @view = new Cake.Views.Cakes.IndexView(collection: Cake.Application.request('CakeRepository'))
     $("#backbone-content").html(@view.render().el)
 
   show: (id) ->
-    cake = @cakes.get(id)
+    cake = Cake.Application.request('CakeRepository').get(id)
     @view = new Cake.Views.Cakes.ShowView(model: cake)
     $("#backbone-content").html(@view.render().el)
 
+  newCake: ->
+    @view = new Cake.Views.Cakes.NewView(collection: Cake.Application.request('CakeRepository'))
+    $("#backbone-content").html(@view.render().el)
+
   edit: (id) ->
-    cake = @cakes.get(id)
+    cake = Cake.Application.request('CakeRepository').get(id)
 
     @view = new Cake.Views.Cakes.EditView(model: cake)
     $("#backbone-content").html(@view.render().el)
app/assets/javascripts/backbone/cake.js.coffee
@@ -13,5 +13,19 @@ window.Cake =
     $(document).ajaxSend  (event, xhr) ->
       if data.access_token
         xhr.setRequestHeader "Authorization", "Token token=#{data.access_token}"
-    new Cake.Routers.CakesRouter()
-    new Cake.Routers.PhotosRouter()
+
+    Cake.Application = new Marionette.Application()
+    Cake.Application.addInitializer (options) ->
+      new Cake.Routers.CakesRouter()
+      new Cake.Routers.PhotosRouter()
+
+    Cake.Application.on 'start', ->
+      if Backbone.history
+        Backbone.history.start()
+
+    @cakes = new Cake.Collections.CakesCollection()
+    @cakes.fetch(reset: true)
+    Cake.Application.reqres.setHandler 'CakeRepository', =>
+      @cakes
+
+    Cake.Application.start()