aboutsummaryrefslogtreecommitdiff
path: root/src/components/media_upload
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/media_upload')
-rw-r--r--src/components/media_upload/media_upload.js16
-rw-r--r--src/components/media_upload/media_upload.vue2
2 files changed, 16 insertions, 2 deletions
diff --git a/src/components/media_upload/media_upload.js b/src/components/media_upload/media_upload.js
index 746970aa..8b4e7ad4 100644
--- a/src/components/media_upload/media_upload.js
+++ b/src/components/media_upload/media_upload.js
@@ -29,10 +29,24 @@ const mediaUpload = {
.then((fileData) => {
self.$emit('uploaded', fileData)
self.uploading = false
- }, (error) => {
+ }, (error) => { // eslint-disable-line handle-callback-err
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>