diff options
| author | shpuld <shpuld@gmail.com> | 2017-02-22 14:53:05 +0200 |
|---|---|---|
| committer | shpuld <shpuld@gmail.com> | 2017-02-22 14:53:05 +0200 |
| commit | 6c385ae80aaf763db7f973b5dc1e3bd21367a2a7 (patch) | |
| tree | 986d0227a3a599c6086216a1a3a13b99c196e744 /src/components/media_upload | |
| parent | ca71722c1eaa5c2aa4597bef38ca812c15294359 (diff) | |
Make drag&drop work on more browsers/platforms, make the Upload button accept drops as well.
Diffstat (limited to 'src/components/media_upload')
| -rw-r--r-- | src/components/media_upload/media_upload.js | 14 | ||||
| -rw-r--r-- | src/components/media_upload/media_upload.vue | 2 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/components/media_upload/media_upload.js b/src/components/media_upload/media_upload.js index 3f6fec5b..2f312ec9 100644 --- a/src/components/media_upload/media_upload.js +++ b/src/components/media_upload/media_upload.js @@ -33,6 +33,20 @@ const mediaUpload = { self.$emit('upload-failed') self.uploading = false }) + }, + fileDrop (e) { + if(e.dataTransfer.files.length > 0) { + e.preventDefault() // allow dropping text like before + this.uploadFile(e.dataTransfer.files[0]) + } + }, + fileDrag (e) { + let types = e.dataTransfer.types + if(types.contains('Files')) { + e.dataTransfer.dropEffect = 'copy' + } else { + e.dataTransfer.dropEffect = 'none' + } } }, props: [ diff --git a/src/components/media_upload/media_upload.vue b/src/components/media_upload/media_upload.vue index 3302db37..b839067b 100644 --- a/src/components/media_upload/media_upload.vue +++ b/src/components/media_upload/media_upload.vue @@ -1,5 +1,5 @@ <template> - <div class="media-upload"> + <div class="media-upload" @drop.prevent @dragover.prevent="fileDrag" @drop="fileDrop"> <label class="btn btn-default"> <i class="fa icon-spin4 animate-spin" v-if="uploading"></i> <i class="fa icon-upload" v-if="!uploading"></i> |
