diff options
| author | Jules Laplace <jules@okfoc.us> | 2016-04-05 14:05:35 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2016-04-05 14:05:35 -0400 |
| commit | 56580705e3a62eaf1c498c1c0456fc33fe3b2f76 (patch) | |
| tree | e0e42a12aae98aacc733e3f7bb210d72d63c9d19 /themes/okadmin/public/js/upload.js | |
| parent | cd929e1c38c02c1d048abe702c04c7d4d6188011 (diff) | |
broaden media support
Diffstat (limited to 'themes/okadmin/public/js/upload.js')
| -rw-r--r-- | themes/okadmin/public/js/upload.js | 61 |
1 files changed, 45 insertions, 16 deletions
diff --git a/themes/okadmin/public/js/upload.js b/themes/okadmin/public/js/upload.js index cfc1199..2ce14ad 100644 --- a/themes/okadmin/public/js/upload.js +++ b/themes/okadmin/public/js/upload.js @@ -1,6 +1,8 @@ var OKUpload = function(){ - this.action = "/_services/image" + this.action = this.imageAction = "/_services/s3/image" + this.videoAction = "/_services/s3/video" + this.audioAction = "/_services/s3/audio" } OKUpload.prototype.bind = function(rapper){ var uploader = this @@ -14,18 +16,25 @@ OKUpload.prototype.bind = function(rapper){ $(".add-url", rapper).on("keydown blur", pressEnter( function(e){ var url = $(this).val() $(this).val("") - if (! url) return - Parser.parse( url, function(media){ - console.log(url, media) - if (media.type == "image") { - uploader.add(url) - } - else { - uploader.addVideo(media) - } - }) + uploader.parse(url) })) } +OKUpload.prototype.parse = function(url){ + if (! url) return + var uploader = this + Parser.parse( url, function(media){ + console.log(url, media) + if (! media) { + alert("Not a valid link") + } + else if (media.type == "image") { + uploader.add(media) + } + else { + uploader.addMedia(media) + } + }) +} OKUpload.prototype.handleFileSelect = function(e) { e.stopPropagation(); e.preventDefault(); @@ -33,13 +42,29 @@ OKUpload.prototype.handleFileSelect = function(e) { var files = e.dataTransfer ? e.dataTransfer.files : e.target.files; for (var i = 0, f; f = files[i]; i++) { - if ( ! f.type.match('image.*')) { + if ( ! f.type.match('image.*') && ! f.type.match('video.*') ) { continue; } this.upload(f) } } OKUpload.prototype.upload = function(f){ + + var field, action + + if ( f.type.match('video.*') ) { + field = 'video' + action = this.videoAction + } + else if ( f.type.match('audio.*') ) { + field = 'audio' + action = this.audioAction + } + else { + field = 'image' + action = this.imageAction || this.action + } + this.xhrCount += 1 this.$progress.addClass("loading") @@ -51,10 +76,10 @@ OKUpload.prototype.upload = function(f){ this.$progress.append($loader) var fd = new FormData() - fd.append('image', f) + fd.append(field, f) var request = new XMLHttpRequest() - request.open("POST", this.action, true) + request.open("POST", action, true) request.addEventListener("progress", updateProgress.bind(this)); request.addEventListener("load", transferComplete.bind(this)); @@ -77,6 +102,7 @@ OKUpload.prototype.upload = function(f){ this.success( responseData ) } catch (e) { + console.log(request.responseText) console.log("ERROR PARSING JSON") } } @@ -121,12 +147,15 @@ OKUpload.prototype.success = function(data){ return } var url = data[0].extra.Location - this.add(url) + this.parse(url) } OKUpload.prototype.add = function(media){ console.log(media) } -OKUpload.prototype.addVideo = function(media){ +OKUpload.prototype.addMedia = function(media){ + console.log(media) +} +OKUpload.prototype.addAudio = function(media){ console.log(media) } OKUpload.prototype.error = function(error){ |
