File: //home/turkishi/www/wp-content/plugins/wp-event-manager/assets/js/ajax-file-upload.js
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() {
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.replace(/\|/g, ', '));
}
}
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();
});