upload.js (1610B)
1 import Api from "../../../../cms/ui/themes/default/script/openrat/api.js"; 2 import $ from "../../../../cms/ui/themes/default/script/jquery-global.js"; 3 4 export default function (element ) { 5 6 7 let form = $(element).find('form'); 8 9 // Dateiupload über Drag and Drop 10 let dropzone = $(element).find('div.or-dropzone-upload'); 11 dropzone.on('dragenter', function (e) 12 { 13 e.stopPropagation(); 14 e.preventDefault(); 15 $(this).css('border', '1px dotted gray'); 16 }); 17 dropzone.on('dragover', function (e) 18 { 19 e.stopPropagation(); 20 e.preventDefault(); 21 }); 22 dropzone.on('drop', function (e) 23 { 24 $(this).css('border','1px dotted red'); 25 e.preventDefault(); 26 let files = e.originalEvent.dataTransfer.files; 27 28 //We need to send dropped files to Server 29 handleFileUpload(form,files); 30 }); 31 32 33 // Dateiupload über File-Input-Button 34 $(element).find('input[type=file]').change( function() { 35 36 let files = this.files; 37 38 handleFileUpload(form,files); 39 }); 40 41 }; 42 43 44 /** 45 * Upload of files. 46 * @param form 47 * @param files 48 */ 49 let handleFileUpload = function(form,files) 50 { 51 for (let i = 0; i < files.length; i++) 52 { 53 let f = files[i]; 54 let form_data = new FormData(); 55 form_data.append('file' , f); 56 form_data.append('action' , $(form).data('action')); 57 form_data.append('subaction', $(form).data('method')); 58 form_data.append('token' , $(form).find('input[name=token]').val() ); 59 form_data.append('id' , $(form).find('input[name=id]' ).val() ); 60 form_data.append('output' , 'json' ); 61 62 let api = new Api(); 63 api.sendData( form_data ); 64 } 65 }