Sha256: eb0b5e59170e5080c0c12873e9939be30aa8a4c721728d7f311b38d4acafe973

Contents?: true

Size: 1.78 KB

Versions: 20

Compression:

Stored size: 1.78 KB

Contents

class Application.Models.Photo extends Backbone.Model
  paramRoot: 'photo'
  defaults:
    image: null
    description: ''
    progress: 0
  
  initialize: ->
    @on 'add', @onAdd, @

  onAdd: ->
    xhr = new XMLHttpRequest()
    xhr.open "POST", @url()
    datas = new FormData()
    datas.append "image", @get("image")
    xhr.upload.addEventListener "progress", (e) =>
      if e.lengthComputable
        currentState = (e.loaded / e.total) * 100
        @set progress: currentState

    xhr.onreadystatechange = (e) =>
      if e.currentTarget.readyState is 4
        @set progress: 100
        @trigger "uploadCompleted"
        if xhr.responseText
          responseObject = JSON.parse(xhr.responseText)
          console.log responseObject
          @set responseObject
        else
          console.log "Não foi possível enviar o arquivo"


    # Start send the file.
    xhr.send datas

class Application.Collections.PhotosCollection extends Backbone.Collection
  model: Application.Models.Photo
  url: '/photos'

  setFromFiles: (files) ->
    @reset()
    i = 0
    while f = files[i]
      reader = new FileReader()
      reader.onload = ((theFile, theId) =>
        (e) ->
          photo = new Application.Models.Photo()
          photo.set id: theId
          photo.set filename: theFile.name
          photo.set image: e.target.result
          @add photo
      )(f)
      reader.readAsDataURL f, i
      i++

  addFromFiles: (files) ->
    i = 0
    while f = files[i]
      reader = new FileReader()
      reader.onload = ((theFile, theId) =>
        (e) ->
          photo = new Application.Models.Photo()
          photo.set id: theId
          photo.set filename: theFile.name
          photo.set image: e.target.result
          @add photo
      )(f)
      reader.readAsDataURL f, i
      i++

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
mix-rails-0.26.3 mix-rails-albums/app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-albums-0.26.3 app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-0.26.2 mix-rails-albums/app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-albums-0.26.2 app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-0.26.1 mix-rails-albums/app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-albums-0.26.1 app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-0.26.0 mix-rails-albums/app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-albums-0.26.0 app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-0.25.1 mix-rails-albums/app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-albums-0.25.1 app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-0.25.0 mix-rails-albums/app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-albums-0.25.0 app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-0.24.1 mix-rails-albums/app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-albums-0.24.1 app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-0.24.0 mix-rails-albums/app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-albums-0.24.0 app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-0.23.1 mix-rails-albums/app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-albums-0.23.1 app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-0.23.0 mix-rails-albums/app/assets/javascripts/backbone/models/photo.js.coffee
mix-rails-albums-0.23.0 app/assets/javascripts/backbone/models/photo.js.coffee