openrat-cms

OpenRat Content Management System
git clone http://git.code.weiherhei.de/openrat-cms.git
Log | Files | Refs | README

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 }