Commit e5b8e39f

mo khan <mo@mokhan.ca>
2014-06-17 03:22:33
add photos router and redirect to new photo page after successfully creating a new creation.
1 parent d20c057
Changed files (8)
app/assets/javascripts/backbone/models/photo.js.coffee
@@ -4,6 +4,7 @@ class Cake.Models.Photo extends Backbone.Model
   defaults:
     thumb_url: null
     large_url: null
+    original_url: null
 
 class Cake.Collections.PhotosCollection extends Backbone.Collection
   model: Cake.Models.Photo
app/assets/javascripts/backbone/routers/cakes_router.js.coffee
@@ -13,19 +13,19 @@ class Cake.Routers.CakesRouter extends Backbone.Router
 
   newCake: ->
     @view = new Cake.Views.Cakes.NewView(collection: @cakes)
-    $("#cakes").html(@view.render().el)
+    $("#backbone-content").html(@view.render().el)
 
   index: ->
     @view = new Cake.Views.Cakes.IndexView(cakes: @cakes)
-    $("#cakes").html(@view.render().el)
+    $("#backbone-content").html(@view.render().el)
 
   show: (id) ->
     cake = @cakes.get(id)
     @view = new Cake.Views.Cakes.ShowView(model: cake)
-    $("#cakes").html(@view.render().el)
+    $("#backbone-content").html(@view.render().el)
 
   edit: (id) ->
     cake = @cakes.get(id)
 
     @view = new Cake.Views.Cakes.EditView(model: cake)
-    $("#cakes").html(@view.render().el)
+    $("#backbone-content").html(@view.render().el)
app/assets/javascripts/backbone/routers/photos_router.js.coffee
@@ -1,31 +1,30 @@
 class Cake.Routers.PhotosRouter extends Backbone.Router
   initialize: (options) ->
     @photos = new Cake.Collections.PhotosCollection()
-    @photos.reset options.photos
 
   routes:
-    "new"      : "newPhoto"
-    "index"    : "index"
-    ":id/edit" : "edit"
-    ":id"      : "show"
-    ".*"        : "index"
+    ":cake_id/photos/new"      : "newPhoto"
+    "photos/index"    : "index"
+    "photos/:id/edit" : "edit"
+    "photos/:id"      : "show"
+    "photos/.*"        : "index"
 
-  newPhoto: ->
+  newPhoto: (cake_id) ->
     @view = new Cake.Views.Photos.NewView(collection: @photos)
-    $("#photos").html(@view.render().el)
+    $("#backbone-content").html(@view.render().el)
 
   index: ->
     @view = new Cake.Views.Photos.IndexView(photos: @photos)
-    $("#photos").html(@view.render().el)
+    $("#backbone-content").html(@view.render().el)
 
   show: (id) ->
     photo = @photos.get(id)
 
     @view = new Cake.Views.Photos.ShowView(model: photo)
-    $("#photos").html(@view.render().el)
+    $("#backbone-content").html(@view.render().el)
 
   edit: (id) ->
     photo = @photos.get(id)
 
     @view = new Cake.Views.Photos.EditView(model: photo)
-    $("#photos").html(@view.render().el)
+    $("#backbone-content").html(@view.render().el)
app/assets/javascripts/backbone/templates/cakes/show.jst.ejs
@@ -1,4 +1,5 @@
 <a href="#/">Back</a>
+<a href="#/cakes/<%= id %>/photos" class="btn">Add Photo</a>
 
 <div class="row">
   <div class="span6">
app/assets/javascripts/backbone/templates/photos/new.jst.ejs
@@ -17,4 +17,4 @@
 
 </form>
 
-<a href="#/index">Back</a>
\ No newline at end of file
+<a href="#/index">Back</a>
app/assets/javascripts/backbone/views/cakes/new_view.js.coffee
@@ -23,7 +23,7 @@ class Cake.Views.Cakes.NewView extends Backbone.View
     @collection.create(@model.toJSON(),
       success: (cake) =>
         @model = cake
-        window.location.hash = "/#{@model.id}"
+        window.location.hash = "/#{@model.id}/photos/new"
 
       error: (cake, jqXHR) =>
         #@model.set({errors: $.parseJSON(jqXHR.responseText)})
app/assets/javascripts/backbone/cake.js.coffee
@@ -14,3 +14,4 @@ window.Cake =
       if data.access_token
         xhr.setRequestHeader "Authorization", "Token token=" + data.access_token
     new Cake.Routers.CakesRouter()
+    new Cake.Routers.PhotosRouter()
app/views/my/cakes/index.html.erb
@@ -5,4 +5,4 @@
 <% end -%>
 
 <%= render partial: "shared/account_nav", locals: { selected: :creations } %>
-<div id="cakes"></div>
+<div id="backbone-content"></div>