openrat-cms

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

upload.js (2223B)


      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 		 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 		handleFileUpload(form,files);
     36 	});
     37 
     38 });
     39 
     40 
     41 
     42 
     43 
     44 
     45 function handleFileUpload(form,files)
     46 {
     47 	for (var i = 0, f; f = files[i]; i++)
     48 	{
     49 	    var form_data = new FormData();                  
     50 	    form_data.append('file'     , f);
     51 	    form_data.append('action'   ,'folder');
     52 	    form_data.append('subaction',$(form).data('method'));
     53 	    form_data.append('output'   ,'json');
     54 	    form_data.append('token'    ,$(form).find('input[name=token]').val() );
     55 	    form_data.append('id'       ,$(form).find('input[name=id]'   ).val() );
     56 	    
     57 		var status = $('<div class="notice info"><div class="text loader"></div></div>');
     58 		$('#noticebar').prepend(status); // Notice anhängen.
     59 		$(status).show();
     60 
     61 		$.ajax( { 'type':'POST',url:'./api/', cache:false,contentType: false, processData: false, data:form_data, success:function(data, textStatus, jqXHR)
     62 			{
     63 				$(status).remove();
     64 				let oform = new Openrat.Form();
     65 				oform.doResponse(data,textStatus,form);
     66 			},
     67 			error:function(jqXHR, textStatus, errorThrown) {
     68 				$(form).closest('div.content').removeClass('loader');
     69 				$(status).remove();
     70 				
     71 				var msg;
     72 				try
     73 				{
     74 					var error = jQuery.parseJSON( jqXHR.responseText );
     75 					msg = error.error + '/' + error.description + ': ' + error.reason;
     76 				}
     77 				catch( e )
     78 				{
     79 					msg = jqXHR.responseText;
     80 				}
     81 				
     82 				Openrat.Workbench.notify('Upload error',msg);
     83 			}
     84 			
     85 		} );
     86 	}
     87 }