Sha256: 859d8769445a58d7de4fa2a9c43c402b0bd48c9966b6a6add222a6c75df17ed0

Contents?: true

Size: 1.5 KB

Versions: 6

Compression:

Stored size: 1.5 KB

Contents

Spree.Models.AttachmentUpload = Backbone.Model.extend(
  initialize: ->
    file = @get('file')
    @set
      filename: file.name
      size: if file.size then (file.size / 1024 | 0) + 'K' else ''
    return

  defaults: ->
    {
      file: null
      attachmentSrc: ''
      progress: 0
      serverError: false
      filename: ''
      size: ''
    }

  acceptedTypes: 'application/pdf': true

  previewFile: ->
    file = @get('file')
    that = this
    if FileReader and @acceptedTypes[file.type] == true
      reader = new FileReader

      reader.onload = (event) ->
        that.set attachmentSrc: event.target.result
        return

      reader.readAsDataURL file
    return

  uploadFile: ->
    formData = new FormData
    that = this

    formData.append 'attachment[attachment]', @get('file')
    formData.append 'attachment[viewable_id]', @get('variant_id')
    formData.append 'upload_id', @cid

    Spree.ajax(
      url: window.location.pathname
      type: 'POST'
      dataType: 'script'
      data: formData
      processData: false
      contentType: false
      xhr: ->
        xhr = $.ajaxSettings.xhr()
        if xhr.upload
          xhr.upload.onprogress = (event) ->
            if event.lengthComputable
              complete = event.loaded / event.total * 100 | 0
              that.set progress: complete
            return
        xhr
    ).done(->
      that.set progress: 100
      return
    ).error (jqXHR, textStatus, errorThrown) ->
      that.set serverError: true
      return
    return
);

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
solidus_product_attachments-0.0.7 app/assets/javascripts/spree/backend/attachments/attachment_upload.js.coffee
solidus_product_attachments-0.0.6 app/assets/javascripts/spree/backend/attachments/attachment_upload.js.coffee
solidus_product_attachments-0.0.5 app/assets/javascripts/spree/backend/attachments/attachment_upload.js.coffee
solidus_product_attachments-0.0.4 app/assets/javascripts/spree/backend/attachments/attachment_upload.js.coffee
solidus_product_attachments-0.0.2 app/assets/javascripts/spree/backend/attachments/attachment_upload.js.coffee
solidus_product_attachments-0.0.1 app/assets/javascripts/spree/backend/attachments/attachment_upload.js.coffee