1jQuery(document).ready(function($){ 2 3 $(".wwlc-account-details-field input[type='file']").on('change', function () { 4 var fileField = $(this); 5 var closestElement = fileField.closest(".wwlc-account-details-field"); 6 var fieldID = closestElement.find('input[type="hidden"]').prop("id"); 7 var selectedFile = fileField[0].files[0]; 8 var selectedFileType = selectedFile.name.split(".").pop(); 9 10 // Disable input and show spinner. 11 fileField.prop("disabled", true); 12 closestElement.find(".wwlc-loader").css("height", 24).show(); 13 14 // Check if file type is allowed. 15 wwlcFrontEndAjaxServices.getAllowedFileSettings(fieldID, $('#wwlc_update_user_nonce_field').val()).done(function (response) { 16 // Hide notice 17 closestElement.find(".inline-error").remove(); 18 19 if ( 20 $.inArray( 21 selectedFileType, 22 response["allowed_file_types"] 23 ) < 0 24 ) { 25 closestElement 26 .append( 27 '<div class="inline-error">' + 28 MyAccountVars.file_format_not_supported + 29 "</div>" 30 ); 31 } else if (selectedFile.size <= 0) { 32 closestElement 33 .append( 34 '<div class="inline-error">' + 35 MyAccountVars.file_size_is_empty + 36 "</div>" 37 ); 38 } else if ( 39 selectedFile.size > 40 response["max_allowed_file_size"] 41 ) { 42 closestElement 43 .append( 44 '<div class="inline-error">' + 45 MyAccountVars.file_size_exceeds_max_allowed + 46 "</div>" 47 ); 48 } else { 49 var fileData = new FormData(); 50 51 fileData.append( "action", "wwlc_file_upload_handler" ); 52 fileData.append( "uploaded_file", selectedFile ); 53 fileData.append("file_settings", JSON.stringify(response)); 54 fileData.append("nonce", MyAccountVars?.wwlc_file_upload_nonce); 55 56 wwlcFrontEndAjaxServices.uploadFile(fileData) 57 .done(function (data) { 58 if (data.status === "success") { 59 // save file name to hidden input 60 closestElement.find( 61 'input[type="hidden"]' 62 ).val(data.file_name); 63 64 closestElement.find(".inline-error").remove(); 65 } 66 }) 67 .error(function ( jqXHR, textStatus, errorThrown ) { 68 console.log("ERRORS: " + textStatus); 69 }); 70 } 71 72 // hide file input and loader, and show the filename placeholder 73 closestElement.find(".wwlc-loader").hide(); 74 fileField.prop("disabled", false); 75 }); 76 77 }); 78 79});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.