diff options
Diffstat (limited to 'themes')
| -rw-r--r-- | themes/okadmin/public/js/app.js | 3 | ||||
| -rw-r--r-- | themes/okadmin/public/js/upload.js | 36 | ||||
| -rw-r--r-- | themes/okadmin/templates/partials/head.liquid | 2 | ||||
| -rw-r--r-- | themes/okadmin/templates/partials/tail.liquid | 4 |
4 files changed, 36 insertions, 9 deletions
diff --git a/themes/okadmin/public/js/app.js b/themes/okadmin/public/js/app.js index a12f517..59fc6ae 100644 --- a/themes/okadmin/public/js/app.js +++ b/themes/okadmin/public/js/app.js @@ -40,7 +40,8 @@ var OKAdmin = function(){ var parent = this var uploader = new OKUpload () uploader.bind( this ) - uploader.add = function(url){ + uploader.add = function(media){ + var url = media.url var imageTemplate = $(".image-template", parent).html() var $el = $(imageTemplate) $el.find(".uri").val(url) diff --git a/themes/okadmin/public/js/upload.js b/themes/okadmin/public/js/upload.js index 6149424..44a34b5 100644 --- a/themes/okadmin/public/js/upload.js +++ b/themes/okadmin/public/js/upload.js @@ -1,8 +1,9 @@ var OKUpload = function(){ - this.action = this.imageAction = "/_services/s3/image" - this.videoAction = "/_services/s3/video" - this.audioAction = "/_services/s3/audio" + this.config = $("#uploadConfig").data() + this.imageAction = "/_services/s3/image" + this.videoAction = "/_services/s3/video" + this.audioAction = "/_services/s3/audio" } OKUpload.prototype.bind = function(rapper){ var uploader = this @@ -42,29 +43,47 @@ 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.*') && ! f.type.match('video.*') ) { - continue; - } this.upload(f) } } +OKUpload.prototype.largeFileError = function(file, maxSize) { + var your_bytes = bytesToString(file.size) + var max_bytes = bytesToString(maxSize) + alert("Sorry, your file is too big.\n\n" + file.name + "\n\nYour file: " + your_bytes + "\nMax size: " + max_bytes) + function bytesToString (n) { + if (n < 1024) return n + " bytes" + n /= 1024 + if (n < 1024) return n.toFixed(1) + " kb" + n /= 1024 + if (n < 1024) return n.toFixed(1) + " mb" + } +} OKUpload.prototype.upload = function(f){ var field, action if ( f.type.match('video.*') ) { + if (this.config.videoMaxbytes && f.size > this.config.videoMaxbytes) { + return this.largeFileError(f, this.config.videoMaxbytes) + } field = 'video' action = this.videoAction } else if ( f.type.match('audio.*') ) { + if (this.config.audioMaxbytes && f.size > this.config.audioMaxbytes) { + return this.largeFileError(f, this.config.audioMaxbytes) + } field = 'audio' action = this.audioAction } else { + if (this.config.imageMaxbytes && f.size > this.config.imageMaxbytes) { + return this.largeFileError(f, this.config.imageMaxbytes) + } field = 'image' action = this.imageAction || this.action } - + this.xhrCount += 1 this.$progress.addClass("loading") @@ -109,11 +128,13 @@ OKUpload.prototype.upload = function(f){ console.log(arguments, request) } function transferError (data) { + console.log("Transfer error") this.loadCount += 1 this.hideUploadBars() console.log(arguments) } function transferAbort (data) { + console.log("Transfer aborted") this.loadCount += 1 this.hideUploadBars() console.log(arguments) @@ -147,6 +168,7 @@ OKUpload.prototype.success = function(data){ return } var url = data[0].extra.Location.replace(/%2F/, '\/') + console.log(url) this.parse(url) } OKUpload.prototype.add = function(media){ diff --git a/themes/okadmin/templates/partials/head.liquid b/themes/okadmin/templates/partials/head.liquid index 7ee4824..e9c27dc 100644 --- a/themes/okadmin/templates/partials/head.liquid +++ b/themes/okadmin/templates/partials/head.liquid @@ -10,4 +10,4 @@ <span class="breadcrumb"><b>{{meta.project}}</b> Admin</span> <a class="site-link" href="/">View Site</a> </header> - <div class="container"> + <div class="container">
\ No newline at end of file diff --git a/themes/okadmin/templates/partials/tail.liquid b/themes/okadmin/templates/partials/tail.liquid index 53823b0..522023b 100644 --- a/themes/okadmin/templates/partials/tail.liquid +++ b/themes/okadmin/templates/partials/tail.liquid @@ -1,5 +1,9 @@ </div> {% comment %} closes container tag {% endcomment %} <div id="progress"></div> + <div id="uploadConfig" + data-image-maxbytes="{{meta.services.s3.image.maxbytes}}" + data-audio-maxbytes="{{meta.services.s3.audio.maxbytes}}" + data-video-maxbytes="{{meta.services.s3.video.maxbytes}}"></div> </body> <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/3.6.0/lodash.min.js"></script> |
