summaryrefslogtreecommitdiff
path: root/public/assets/js/vendor/view/uploadview.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/js/vendor/view/uploadview.js')
-rw-r--r--public/assets/js/vendor/view/uploadview.js99
1 files changed, 99 insertions, 0 deletions
diff --git a/public/assets/js/vendor/view/uploadview.js b/public/assets/js/vendor/view/uploadview.js
new file mode 100644
index 0000000..436f4c8
--- /dev/null
+++ b/public/assets/js/vendor/view/uploadview.js
@@ -0,0 +1,99 @@
+
+var UploadView = View.extend({
+
+ // define uploadAction
+
+ events: {
+ "change [type=file]": "handleFileSelect",
+ "submit form": "preventDefault",
+ },
+
+ initialize: function(){
+ this.$file = this.$("[type=file]")
+ this.$upload = this.$(".upload-icon")
+ },
+
+ beforeUpload: function(){
+ },
+
+ handleFileSelect: function(e) {
+ e.stopPropagation();
+ e.preventDefault();
+
+ this.beforeUpload()
+
+ 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;
+ }
+
+ this.upload(f)
+ // this.getImageDimensions(f)
+ }
+ },
+
+/*
+ getImageDimensions: function(f){
+ var base = this
+
+ this.$upload.addClass('uploading')
+
+ var reader = new FileReader()
+
+ reader.onload = function(e) {
+ var image = new Image()
+ image.onload = function(){
+ var width = image.naturalWidth,
+ height = image.naturalHeight
+ base.upload(f, width, height)
+ }
+ image.src = e.target.result
+ }
+
+ reader.readAsDataURL(f);
+ },
+*/
+
+ upload: function(f){
+ var fd = new FormData()
+ fd.append('image', f)
+// fd.append('width', width)
+// fd.append('height', height)
+// fd.append('_csrf', $("[name=_csrf]").val())
+
+ if (this.mediaTag) {
+ fd.append('tag', this.mediaTag)
+ }
+
+ var request = $.ajax({
+ url: this.uploadAction,
+ type: "post",
+ data: fd,
+ dataType: "json",
+ processData: false,
+ contentType: false,
+ })
+ request.done(this.success.bind(this))
+ },
+
+ success: function(media){
+ if (media.error) {
+ // console.log(media.error)
+ this.$upload.removeClass('uploading')
+ this.error(media.error)
+ return
+ }
+ this.$upload.removeClass('uploading')
+ this.add(media)
+ },
+
+ add: function(media){
+ console.log(media)
+ },
+
+ error: function(error){
+ },
+
+})