60 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
|  | const DropZone = require("dropzone"); | ||
|  | 
 | ||
|  | const template = `
 | ||
|  |     <div class="dropzone-container"> | ||
|  |         <div class="dz-message">{{placeholder}}</div> | ||
|  |     </div> | ||
|  | `;
 | ||
|  | 
 | ||
|  | const props = ['placeholder', 'uploadUrl', 'uploadedTo']; | ||
|  | 
 | ||
|  | // TODO - Remove jQuery usage
 | ||
|  | function mounted() { | ||
|  |    let container = this.$el; | ||
|  |    let _this = this; | ||
|  |    new DropZone(container, { | ||
|  |         url: function() { | ||
|  |             return _this.uploadUrl; | ||
|  |         }, | ||
|  |         init: function () { | ||
|  |             let dz = this; | ||
|  | 
 | ||
|  |             dz.on('sending', function (file, xhr, data) { | ||
|  |                 let token = window.document.querySelector('meta[name=token]').getAttribute('content'); | ||
|  |                 data.append('_token', token); | ||
|  |                 let uploadedTo = typeof _this.uploadedTo === 'undefined' ? 0 : _this.uploadedTo; | ||
|  |                 data.append('uploaded_to', uploadedTo); | ||
|  |             }); | ||
|  | 
 | ||
|  |             dz.on('success', function (file, data) { | ||
|  |                 _this.$emit('success', {file, data}); | ||
|  |                 $(file.previewElement).fadeOut(400, function () { | ||
|  |                     dz.removeFile(file); | ||
|  |                 }); | ||
|  |             }); | ||
|  | 
 | ||
|  |             dz.on('error', function (file, errorMessage, xhr) { | ||
|  |                 _this.$emit('error', {file, errorMessage, xhr}); | ||
|  |                 console.log(errorMessage); | ||
|  |                 console.log(xhr); | ||
|  |                 function setMessage(message) { | ||
|  |                     $(file.previewElement).find('[data-dz-errormessage]').text(message); | ||
|  |                 } | ||
|  | 
 | ||
|  |                 if (xhr.status === 413) setMessage(trans('errors.server_upload_limit')); | ||
|  |                 if (errorMessage.file) setMessage(errorMessage.file[0]); | ||
|  |             }); | ||
|  |         } | ||
|  |    }); | ||
|  | } | ||
|  | 
 | ||
|  | function data() { | ||
|  |     return {} | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = { | ||
|  |     template, | ||
|  |     props, | ||
|  |     mounted, | ||
|  |     data, | ||
|  | }; |