upload.js (2316B)
1 Openrat.Workbench.afterViewLoadedHandler.add( function(element ) { 2 3 4 var form = $(element).find('form'); 5 6 // Dateiupload über Drag and Drop 7 var dropzone = $(element).find('div.or-dropzone-upload > div.input'); 8 dropzone.on('dragenter', function (e) 9 { 10 e.stopPropagation(); 11 e.preventDefault(); 12 $(this).css('border', '1px dotted gray'); 13 }); 14 dropzone.on('dragover', function (e) 15 { 16 e.stopPropagation(); 17 e.preventDefault(); 18 }); 19 dropzone.on('drop', function (e) 20 { 21 $(this).css('border','1px dotted red'); 22 e.preventDefault(); 23 var files = e.originalEvent.dataTransfer.files; 24 25 //We need to send dropped files to Server 26 Openrat.Workbench.handleFileUpload(form,files); 27 }); 28 29 30 // Dateiupload über File-Input-Button 31 $(element).find('input[type=file]').change( function() { 32 33 var files = $(this).prop('files'); 34 35 Openrat.Workbench.handleFileUpload(form,files); 36 }); 37 38 }); 39 40 41 /** 42 * Upload of files. 43 * @param form 44 * @param files 45 */ 46 Openrat.Workbench.handleFileUpload = function(form,files) 47 { 48 for (let i = 0, f; f = files[i]; i++) 49 { 50 let form_data = new FormData(); 51 form_data.append('file' , f); 52 form_data.append('action' ,'folder'); 53 form_data.append('subaction',$(form).data('method')); 54 form_data.append('output' ,'json'); 55 form_data.append('token' ,$(form).find('input[name=token]').val() ); 56 form_data.append('id' ,$(form).find('input[name=id]' ).val() ); 57 58 var status = $('<div class="notice info"><div class="text loader"></div></div>'); 59 $('#noticebar').prepend(status); // Notice anhängen. 60 $(status).show(); 61 62 $.ajax( { 'type':'POST',url:'./api/', cache:false,contentType: false, processData: false, data:form_data, success:function(data, textStatus, jqXHR) 63 { 64 $(status).remove(); 65 let oform = new Openrat.Form(); 66 oform.doResponse(data,textStatus,form); 67 }, 68 error:function(jqXHR, textStatus, errorThrown) { 69 $(form).closest('div.content').removeClass('loader'); 70 $(status).remove(); 71 72 let msg; 73 try 74 { 75 let error = jQuery.parseJSON( jqXHR.responseText ); 76 msg = error.error + '/' + error.description + ': ' + error.reason; 77 } 78 catch( e ) 79 { 80 msg = jqXHR.responseText; 81 } 82 83 Openrat.Workbench.notify('Upload error', 0, msg); 84 } 85 86 } ); 87 } 88 }