openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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 }