summaryrefslogtreecommitdiff
path: root/themes/okadmin/public/js/upload.js
diff options
context:
space:
mode:
Diffstat (limited to 'themes/okadmin/public/js/upload.js')
-rw-r--r--themes/okadmin/public/js/upload.js56
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
+ },
+
+}