Sha256: b9cb14a4fe1a0deaa12047e252f93c94fcd4901b7f955aa6dc6540d9514839ec

Contents?: true

Size: 1.43 KB

Versions: 17

Compression:

Stored size: 1.43 KB

Contents

document.addEventListener "trix-attachment-add", (event) ->
  attachment = event.attachment
  if attachment.file
    return uploadAttachment(event)

document.addEventListener "trix-attachment-remove", (event) ->
  image_url = event.attachment.attachment.preloadedURL
  $("input[data-url='#{image_url}']").remove()

uploadAttachment = (e) ->
  $element = $(e.srcElement)
  $form = $('form:first')
  host = $form.data('trix-url')
  attachment = e.attachment
  file = attachment.file
  formData = new FormData
  formData.append("parent_object_class", $form.data('parent-class'))
  formData.append("model", $element.data('uploader-class'))
  formData.append("file", file)

  xhr = new XMLHttpRequest
  xhr.open("POST", host, true)

  xhr.upload.onprogress = (event) ->
    progress = event.loaded / event.total * 100
    return attachment.setUploadProgress(progress)

  xhr.onload = ->
    if (xhr.status is 204 || xhr.status is 200)
      response = JSON.parse(xhr.responseText)

      uploader = $element.data('uploader-name')
      console.log $element
      console.log uploader
      $form.append("<input type=\"hidden\" name=\"#{$form.data('params-key')}[#{uploader.slice(0, -1)}_ids][]\" value=\"#{response.id}\" />")
      return attachment.setAttributes({
        url:  response.image_url,
        href: response.image_url
      })

  xhr.setRequestHeader(
    "X-CSRF-Token",
    $('meta[name="csrf-token"]').attr('content')
  )
  return xhr.send(formData)

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
adminpanel-3.6.1 app/assets/javascripts/adminpanel/trix-upload.coffee
adminpanel-3.6.0 app/assets/javascripts/adminpanel/trix-upload.coffee
adminpanel-3.5.1 app/assets/javascripts/adminpanel/trix-upload.coffee
adminpanel-3.5.0 app/assets/javascripts/adminpanel/trix-upload.coffee
adminpanel-3.4.7 app/assets/javascripts/adminpanel/trix-upload.coffee
adminpanel-3.4.6 app/assets/javascripts/adminpanel/trix-upload.coffee
adminpanel-3.4.5 app/assets/javascripts/adminpanel/trix-upload.coffee
adminpanel-3.4.4 app/assets/javascripts/adminpanel/trix-upload.coffee
adminpanel-3.4.3 app/assets/javascripts/adminpanel/trix-upload.coffee
adminpanel-3.4.2 app/assets/javascripts/adminpanel/trix-upload.coffee
adminpanel-3.4.1 app/assets/javascripts/adminpanel/trix-upload.coffee
adminpanel-3.4.0 app/assets/javascripts/adminpanel/trix-upload.coffee
adminpanel-3.3.4 app/assets/javascripts/adminpanel/trix-upload.coffee
adminpanel-3.3.3 app/assets/javascripts/adminpanel/trix-upload.coffee
adminpanel-3.3.0 app/assets/javascripts/adminpanel/trix-upload.coffee
adminpanel-3.2.1 app/assets/javascripts/adminpanel/trix-upload.coffee
adminpanel-3.2.0 app/assets/javascripts/adminpanel/trix-upload.coffee