function validate_simple_upload(){ jQuery("input:file").on('change', function(e){ //handle simple upload var uploadInputName = jQuery(this).attr('name'); var uploadButton = jQuery(this); var oFReader = new FileReader(); var attachment = e.target.files[0]; oFReader.readAsDataURL(attachment); oFReader.onload = function (oFREvent) { var src = oFREvent.target.result; var error = ''; jQuery("#p_" + uploadInputName).text(error); uploadInputId = uploadInputName.split('-').join('_'); //Check allowed upload type by wordpress allowed_mime_types = wppb_allowed_wordpress_formats.allowed_wordpress_formats; allowed_by_wordpress = false; for (var key in allowed_mime_types){ allowed_type = allowed_mime_types[key]; if (attachment.type === allowed_type){ allowed_by_wordpress = true; possible_extensions = key.split('|'); } } if (allowed_by_wordpress) { //Check allowed extensions allowed_extensions = jQuery("#allowed_extensions_" + uploadInputId).val(); if (allowed_extensions !== '') { var allowed = false; allowed_extensions = allowed_extensions.split(','); for (var i = 0; i < allowed_extensions.length; i++) { if (possible_extensions.includes(allowed_extensions[i])) { allowed = true; } } if (allowed == false) { error = wppb_error_messages.upload_type_error_message; } } //Check size limit allowed_size_limit = wppb_limit.size_limit; if (attachment.size > allowed_size_limit) { var limit = allowed_size_limit / (1024 * 1024) + 1; error = wppb_error_messages.limit_error_message + limit + 'MB.'; } } else{ error = wppb_error_messages.upload_type_error_message; } if (error !== '') { jQuery("#p_" + uploadInputName).text(error); uploadButton.val(''); } else { var fieldName = uploadInputName.replace(/^(simple_upload_)/, '').replace(/(-)/, '_');; var formData = new FormData(); if (uploadButton.closest('.wppb-upload').length > 0) { formData.append('action', 'wppb_ajax_simple_upload'); formData.append(fieldName, jQuery(e.target).prop('files')[0]); } else { formData.append('action', 'wppb_ajax_simple_avatar'); formData.append(fieldName, jQuery(e.target).prop('files')[0]); } formData.append('nonce', wppb_upload_script_vars.nonce); formData.append('name', fieldName); var alreadyDisabled = false; if ( jQuery( 'p.form-submit .submit.button' ).prop( 'disabled' ) ) { alreadyDisabled = true; } else { jQuery( "p.form-submit .submit.button" ).prop( 'disabled', true ); } jQuery.ajax({ url: wppb_upload_script_vars.ajaxUrl, type: 'POST', contentType: false, processData: false, data: formData, success: function(response){ var response = JSON.parse(response) if( response.errors ){ jQuery("input#" + fieldName).val(null); jQuery('.wppb_simple_upload', jQuery("input#" + fieldName).parent()).val(null); } else { jQuery("input#" + fieldName).val(response); } if ( !alreadyDisabled ) { jQuery("p.form-submit .submit.button").prop('disabled', false); } }, }); } }; }); } jQuery(document).ready(function(){ validate_simple_upload(); jQuery(document).on( 'click', '.wppb-rpf-add', function( event ){ validate_simple_upload(); }); if( typeof wp.media != "undefined" ){ // Uploading files var wp_media_post_id = wp.media.model.settings.post.id; // Store the old id jQuery(document).on( 'click', '.wppb_upload_button', function( event ){ event.preventDefault(); var set_to_post_id = ''; // Set this var file_frame; var uploadInputId = jQuery( this ).data( 'upload_input' ); var uploadButton = jQuery( this ); /* set default tab to upload file */ wp.media.controller.Library.prototype.defaults.contentUserSetting = false; wp.media.controller.Library.prototype.defaults.router = false; wp.media.controller.Library.prototype.defaults.searchable = true; wp.media.controller.Library.prototype.defaults.sortable = false; wp.media.controller.Library.prototype.defaults.date = false; // If the media frame already exists, reopen it. if ( file_frame ) { // Set the post ID to what we want file_frame.uploader.uploader.param( 'post_id', set_to_post_id ); // Open frame file_frame.open(); return; } else { // Set the wp.media post id so the uploader grabs the ID we want when initialised wp.media.model.settings.post.id = set_to_post_id; } // Create the media frame. file_frame = wp.media.frames.file_frame = wp.media({ title: jQuery( this ).data( 'uploader_title' ), button: { text: jQuery( this ).data( 'uploader_button_text' ) }, multiple: false // Set to true to allow multiple files to be selected }); /* send the meta_name of the field */ file_frame.uploader.options.uploader['params']['wppb_upload'] = 'true'; file_frame.uploader.options.uploader['params']['meta_name'] = jQuery( this ).data( 'upload_mn' ); // When an image is selected, run a callback. file_frame.on( 'select', function() { // We set multiple to false so only get one image from the uploader attachments = file_frame.state().get('selection').toJSON(); var attids = []; for( var i=0;i < attachments.length; i++ ){ // Do something with attachment.id and/or attachment.url here attids.push( attachments[i].id ); result = '
'+attachments[i].filename+''+attachments[i].mime +''+wppb_upload_script_vars.remove_link_text+'