summaryrefslogtreecommitdiff
path: root/app/assets/javascripts
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2014-06-17 23:01:01 -0600
committermo khan <mo@mokhan.ca>2014-06-17 23:01:01 -0600
commit4937ef0fbb2c1815779380159bb8c1280439672a (patch)
treebad5118b2be60d8d9241128ebc34fd3a18253375 /app/assets/javascripts
parent5b70fec2a6ca90f7733bcaaf441578e39a89485e (diff)
upload files using backbone and file api.
Diffstat (limited to 'app/assets/javascripts')
-rw-r--r--app/assets/javascripts/application.js1
-rw-r--r--app/assets/javascripts/backbone/models/photo.js.coffee2
-rw-r--r--app/assets/javascripts/backbone/templates/photos/new.jst.ejs4
-rw-r--r--app/assets/javascripts/backbone/views/photos/new_view.js.coffee26
4 files changed, 22 insertions, 11 deletions
diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js
index 88f7f241..3085f831 100644
--- a/app/assets/javascripts/application.js
+++ b/app/assets/javascripts/application.js
@@ -28,4 +28,5 @@
//= require backbone_rails_sync
//= require backbone_datalink
//= require backbone/cake
+//= require backbone-model-file-upload
//= require_tree .
diff --git a/app/assets/javascripts/backbone/models/photo.js.coffee b/app/assets/javascripts/backbone/models/photo.js.coffee
index 5b52d3a2..6bf962c5 100644
--- a/app/assets/javascripts/backbone/models/photo.js.coffee
+++ b/app/assets/javascripts/backbone/models/photo.js.coffee
@@ -1,5 +1,6 @@
class Cake.Models.Photo extends Backbone.Model
paramRoot: 'photo'
+ fileAttribute: 'image'
defaults:
thumb_url: null
@@ -8,7 +9,6 @@ class Cake.Models.Photo extends Backbone.Model
class Cake.Collections.PhotosCollection extends Backbone.Collection
model: Cake.Models.Photo
- url: '/api/v1/cakes/1/photos'
initialize: (options) ->
@url="/api/v1/cakes/#{options.cake_id}/photos"
diff --git a/app/assets/javascripts/backbone/templates/photos/new.jst.ejs b/app/assets/javascripts/backbone/templates/photos/new.jst.ejs
index 2f66004e..d09366aa 100644
--- a/app/assets/javascripts/backbone/templates/photos/new.jst.ejs
+++ b/app/assets/javascripts/backbone/templates/photos/new.jst.ejs
@@ -3,9 +3,9 @@
<form id="new-photo" name="photo" class="form-horizontal">
<fieldset>
<div class="control-group">
- <label class="control-label" for="photo_image">Photo</label>
+ <label class="control-label" for="photo_attachment">Photo</label>
<div class="controls">
- <input class="input-xxlarge" id="photo_image" name="image" type="file">
+ <input class="input-xxlarge" id="photo_attachment" name="attachment" type="file">
</div>
</div>
<div class="form-actions">
diff --git a/app/assets/javascripts/backbone/views/photos/new_view.js.coffee b/app/assets/javascripts/backbone/views/photos/new_view.js.coffee
index 5ec33817..a64c6c37 100644
--- a/app/assets/javascripts/backbone/views/photos/new_view.js.coffee
+++ b/app/assets/javascripts/backbone/views/photos/new_view.js.coffee
@@ -20,14 +20,24 @@ class Cake.Views.Photos.NewView extends Backbone.View
@model.unset("errors")
- @collection.create(@model.toJSON(),
- success: (photo) =>
- @model = photo
- window.location.hash = "/#{@model.id}"
-
- error: (photo, jqXHR) =>
- @model.set({errors: $.parseJSON(jqXHR.responseText)})
- )
+ fileObject = @$(':input[type="file"]')[0].files[0]
+ photo = new Cake.Models.Photo(cake_id: 100)
+ photo.url = => @collection.url
+ photo.set('image', fileObject)
+ photo.on('progress', console.log)
+ photo.save()
+
+ #@model.set('image', fileObject)
+ #@model.save()
+ #@model.on('progress', console.log)
+ #@collection.create(@model.toJSON(),
+ #success: (photo) =>
+ #@model = photo
+ #window.location.hash = "/#{@model.id}"
+
+ #error: (photo, jqXHR) =>
+ #@model.set({errors: $.parseJSON(jqXHR.responseText)})
+ #)
render: ->
$(@el).html(@template(@model.toJSON() ))