Sha256: 842d69f5e4d85dc6add7cef0fd6bfa625abd7fee9bfc4b08980cb5758a48bc00
Contents?: true
Size: 1.67 KB
Versions: 3
Compression:
Stored size: 1.67 KB
Contents
"use strict"; document.addEventListener("change", function(e) { if(e.target.tagName === "INPUT" && e.target.type === "file" && e.target.dataset.direct) { var input = e.target; var file = input.files[0]; if(file) { var url = e.target.dataset.url; if(e.target.dataset.fields) { var fields = JSON.parse(e.target.dataset.fields); } var data = new FormData(); if(fields) { Object.keys(fields).forEach(function(key) { data.append(key, fields[key]); }); } data.append(input.dataset.as, file); var xhr = new XMLHttpRequest(); xhr.addEventListener("load", function(e) { input.classList.remove("uploading") input.dispatchEvent(new CustomEvent("upload:complete", { detail: xhr.responseText, bubbles: true })); if((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) { var id = input.dataset.id || JSON.parse(xhr.responseText).id; input.dispatchEvent(new CustomEvent("upload:success", { detail: xhr.responseText, bubbles: true })); input.previousSibling.value = id; input.removeAttribute("name"); } else { input.dispatchEvent(new CustomEvent("upload:failure", { detail: xhr.responseText, bubbles: true })); } }); xhr.addEventListener("progress", function(e) { if (e.lengthComputable) { input.dispatchEvent(new CustomEvent("upload:progress", { detail: e, bubbles: true })); } }); xhr.open("POST", url, true); xhr.send(data); input.classList.add("uploading") input.dispatchEvent(new CustomEvent("upload:start", { bubbles: true })); } } });
Version data entries
3 entries across 3 versions & 2 rubygems
Version | Path |
---|---|
refile-0.2.2 | app/assets/javascripts/refile.js |
defile-0.2.1 | app/assets/javascripts/defile.js |
defile-0.2.0 | app/assets/javascripts/defile.js |