Skip to content

Instantly share code, notes, and snippets.

@guyisra
Created November 29, 2014 16:20
Show Gist options
  • Save guyisra/8510019a84dd7fffa3cb to your computer and use it in GitHub Desktop.
Save guyisra/8510019a84dd7fffa3cb to your computer and use it in GitHub Desktop.
s3_direct_upload with preview and delete
add: (e, data) ->
file = data.files[0]
r = new FileReader()
r.onload = (e) ->
file.result = e.target.result
r.readAsDataURL(file)
file.unique_id = Math.random().toString(36).substr(2,16)
unless settings.before_add and not settings.before_add(file)
current_files.push data
if $('#template-upload').length > 0
data.context = $($.trim(tmpl("template-upload", file)))
node = $(data.context).appendTo(settings.progress_bar_target || $uploadForm)
$(data.context).find(".delete").click (e) ->
e.preventDefault()
for i in [0...forms_for_submit.length] by 1
if this.parentElement.id == forms_for_submit[i].context[0].id
forms_for_submit.splice(i,1)
current_files.splice(i,1)
break
this.parentElement.remove()
$(data.context).find(".preview").on "click mouseover", (e) ->
$(".upload.active").removeClass('active')
for i in [0...forms_for_submit.length] by 1
if $(this).closest(".upload")[0].id == forms_for_submit[i].context[0].id
$(".fileinput-preview img").attr("src", forms_for_submit[i].files[0].result)
$(this).closest(".upload").addClass('active')
break
else if !settings.allow_multiple_files
data.context = settings.progress_bar_target
if settings.click_submit_target
if settings.allow_multiple_files
forms_for_submit.push data
else
forms_for_submit = [data]
else
data.submit()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment