diff options
| author | mo khan <mo@mokhan.ca> | 2014-06-17 23:01:01 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2014-06-17 23:01:01 -0600 |
| commit | 4937ef0fbb2c1815779380159bb8c1280439672a (patch) | |
| tree | bad5118b2be60d8d9241128ebc34fd3a18253375 /app/assets/javascripts | |
| parent | 5b70fec2a6ca90f7733bcaaf441578e39a89485e (diff) | |
upload files using backbone and file api.
Diffstat (limited to 'app/assets/javascripts')
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() )) |
