diff options
Diffstat (limited to 'themes/okadmin/public/js/upload.js')
| -rw-r--r-- | themes/okadmin/public/js/upload.js | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/themes/okadmin/public/js/upload.js b/themes/okadmin/public/js/upload.js new file mode 100644 index 0000000..d9fd5ed --- /dev/null +++ b/themes/okadmin/public/js/upload.js @@ -0,0 +1,56 @@ + +var OKUpload = { + action: "/_services/image", + + bind: function(){ + var el = document.getElementById("file") + if (! el) return + el.addEventListener("change", OKUpload.handleFileSelect) + }, + + handleFileSelect: function(e) { + e.stopPropagation(); + e.preventDefault(); + + var files = e.dataTransfer ? e.dataTransfer.files : e.target.files; + + for (var i = 0, f; f = files[i]; i++) { + if ( ! f.type.match('image.*')) { + continue; + } + OKUpload.upload(f) + } + }, + + upload: function(f){ + var fd = new FormData() + fd.append('image', f) + + var request = $.ajax({ + url: OKUpload.action, + type: "post", + data: fd, + dataType: "json", + processData: false, + contentType: false, + }) + request.done(OKUpload.success) + }, + + success: function(media){ + if (media.error) { + console.log(media.error) + return + } + OKUpload.add(media) + }, + + add: function(media){ + console.log(media) + }, + + error: function(error){ + throw error + }, + +} |
