summaryrefslogtreecommitdiff
path: root/themes/okadmin/public/js/upload.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2016-04-05 14:05:35 -0400
committerJules Laplace <jules@okfoc.us>2016-04-05 14:05:35 -0400
commit56580705e3a62eaf1c498c1c0456fc33fe3b2f76 (patch)
treee0e42a12aae98aacc733e3f7bb210d72d63c9d19 /themes/okadmin/public/js/upload.js
parentcd929e1c38c02c1d048abe702c04c7d4d6188011 (diff)
broaden media support
Diffstat (limited to 'themes/okadmin/public/js/upload.js')
-rw-r--r--themes/okadmin/public/js/upload.js61
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){