Sha256: a9b8335809b7fbef20f80857f01164213f5ab2172ed85a51b14bb3102f61ef21

Contents?: true

Size: 1.18 KB

Versions: 11

Compression:

Stored size: 1.18 KB

Contents

var FileItem = Backbone.Model.extend({
    defaults: {
        progress:0
    },
    initialize: function(){
        this.on('add', this.onAdd, this);
    },
    onAdd: function(file) {
        var _self = this;
                
        var xhr = new XMLHttpRequest();
        xhr.open("POST", this.url);
        var datas = new FormData();
        datas.append('image', this.get('image'));

        xhr.upload.addEventListener("progress", function(e) {
            if(e.lengthComputable) {
                var currentState = (e.loaded / e.total) * 100;
                _self.set({progress: currentState});
            }
        });
        
        xhr.onreadystatechange = function(e) {
            if(e.currentTarget.readyState == 4) {
                _self.set({progress: 100});
                _self.trigger('uploadCompleted');
                if(xhr.responseText){
                    var responseObject = JSON.parse(xhr.responseText);
                    _self.set(responseObject);
                } else {
                    console.log("Não foi possível enviar o arquivo");
                }
                
            }
        };

        // Start send the file.
        xhr.send(datas);
    }
});

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
mix-rails-0.12.1 mix-rails-albums/app/assets/javascripts/models/fileitem.js
mix-rails-albums-0.12.1 app/assets/javascripts/models/fileitem.js
mix-rails-albums-0.11.0 app/assets/javascripts/models/fileitem.js
mix-rails-0.10.4 mix-rails-albums/app/assets/javascripts/models/fileitem.js
mix-rails-albums-0.10.4 app/assets/javascripts/models/fileitem.js
mix-rails-0.10.3 mix-rails-albums/app/assets/javascripts/models/fileitem.js
mix-rails-albums-0.10.3 app/assets/javascripts/models/fileitem.js
mix-rails-albums-0.10.2 app/assets/javascripts/models/fileitem.js
mix-rails-0.7.0 albums/app/assets/javascripts/models/fileitem.js
mix-rails-0.6.0 albums/app/assets/javascripts/models/fileitem.js
mix-rails-0.5.0 albums/app/assets/javascripts/models/fileitem.js