Helix_Website/wp-content/plugins/wp-event-manager/assets/js/ajax-file-upload.js

1 line
3.6 KiB
JavaScript

var AjaxFileUpload= function () {
/// <summary>Constructor function of the event AjaxFileUpload class.</summary>
/// <returns type="Home" />
return {
///<summary>
///Initializes the ajax file upload.
///</summary>
///<returns type="initialization settings" />
/// <since>1.0.0</since>
init: function()
{
Common.logInfo("AjaxFileUpload.init...");
jQuery('.wp-event-manager-file-upload').each(function(){
jQuery(this).fileupload({
dataType: 'json',
dropZone: jQuery(this),
url: event_manager_ajax_file_upload.ajax_url.toString().replace( "%%endpoint%%", "upload_file" ),
maxNumberOfFiles: 1,
formData: {
script: true
},
add: function (e, data) {
var $file_field = jQuery( this );
var $form = $file_field.closest( 'form' );
var $uploaded_files = $file_field.parent().find('.event-manager-uploaded-files');
var uploadErrors = [];
// Validate type
var allowed_types = jQuery(this).data('file_types');
if ( allowed_types ) {
var acceptFileTypes = new RegExp( "(\.|\/)(" + allowed_types + ")$", "i" );
if ( data.originalFiles[0]['name'].length && ! acceptFileTypes.test( data.originalFiles[0]['name'] ) ) {
uploadErrors.push( event_manager_ajax_file_upload.i18n_invalid_file_type + ' ' + allowed_types );
}
}
if ( uploadErrors.length > 0 ) {
alert( uploadErrors.join( "\n" ) );
} else {
$form.find(':input[type="submit"]').attr( 'disabled', 'disabled' );
data.context = jQuery('<progress value="" max="100"></progress>').appendTo( $uploaded_files );
data.submit();
}
},
progress: function (e, data) {
var $file_field = jQuery( this );
var $uploaded_files = $file_field.parent().find('.event-manager-uploaded-files');
var progress = parseInt(data.loaded / data.total * 100, 10);
data.context.val( progress );
},
fail: function (e, data) {
var $file_field = jQuery( this );
var $form = $file_field.closest( 'form' );
$form.find(':input[type="submit"]').removeAttr( 'disabled' );
},
done: function (e, data) {
var $file_field = jQuery( this );
var $form = $file_field.closest( 'form' );
var $uploaded_files = $file_field.parent().find('.event-manager-uploaded-files');
var multiple = $file_field.attr( 'multiple' ) ? 1 : 0;
var image_types = [ 'jpg', 'gif', 'png', 'jpeg', 'jpe' ];
data.context.remove();
jQuery.each(data.result.files, function(index, file) {
if ( file.error ) {
alert( file.error );
} else {
if ( jQuery.inArray( file.extension, image_types ) >= 0 ) {
var html = jQuery.parseHTML( event_manager_ajax_file_upload.js_field_html_img );
jQuery( html ).find('.event-manager-uploaded-file-preview img').attr( 'src', file.url );
} else {
var html = jQuery.parseHTML( event_manager_ajax_file_upload.js_field_html );
jQuery( html ).find('.event-manager-uploaded-file-name code').text( file.name );
}
jQuery( html ).find('.input-text').val( file.url );
jQuery( html ).find('.input-text').attr( 'name', 'current_' + $file_field.attr( 'name' ) );
if ( multiple ) {
$uploaded_files.append( html );
} else {
$uploaded_files.html( html );
}
}
});
$form.find(':input[type="submit"]').removeAttr( 'disabled' );
}
});
});
}
} //enf of return
}; //end of class
AjaxFileUpload= AjaxFileUpload();
jQuery(document).ready(function($)
{
AjaxFileUpload.init();
});