jQuery(document).ready(function($){
$(".wwlc-account-details-field input[type='file']").on('change', function (){
var fileField=$(this);
var closestElement=fileField.closest(".wwlc-account-details-field");
var fieldID=closestElement.find('input[type="hidden"]').prop("id");
var selectedFile=fileField[0].files[0];
var selectedFileType=selectedFile.name.split(".").pop();
fileField.prop("disabled", true);
closestElement.find(".wwlc-loader").css("height", 24).show();
wwlcFrontEndAjaxServices.getAllowedFileSettings(fieldID, $('#wwlc_update_user_nonce_field').val()).done(function (response){
closestElement.find(".inline-error").remove();
if($.inArray(selectedFileType,
response["allowed_file_types"]
) < 0
){
closestElement
.append('<div class="inline-error">' +
MyAccountVars.file_format_not_supported +
"</div>"
);
}else if(selectedFile.size <=0){
closestElement
.append('<div class="inline-error">' +
MyAccountVars.file_size_is_empty +
"</div>"
);
}else if(selectedFile.size >
response["max_allowed_file_size"]
){
closestElement
.append('<div class="inline-error">' +
MyAccountVars.file_size_exceeds_max_allowed +
"</div>"
);
}else{
var fileData=new FormData();
fileData.append("action", "wwlc_file_upload_handler");
fileData.append("uploaded_file", selectedFile);
fileData.append("file_settings", JSON.stringify(response));
fileData.append("nonce", MyAccountVars?.wwlc_file_upload_nonce);
fileData.append("field_id", fieldID);
fileData.append("_wpnonce", $('#wwlc_update_user_nonce_field').val());
wwlcFrontEndAjaxServices.uploadFile(fileData)
.done(function (data){
if(data.status==="success"){
closestElement.find('input[type="hidden"]'
).val(data.file_name);
closestElement.find(".inline-error").remove();
}else{
closestElement.find(".inline-error").remove();
closestElement.append('<div class="inline-error">' +
(data.message||MyAccountVars.upload_failed_message) +
"</div>"
);
fileField.val('');
}
closestElement.find(".wwlc-loader").hide();
fileField.prop("disabled", false);
})
.fail(function (){
closestElement.find(".inline-error").remove();
closestElement.append('<div class="inline-error">' +
MyAccountVars.upload_failed_message +
"</div>"
);
closestElement.find(".wwlc-loader").hide();
fileField.val('');
fileField.prop("disabled", false);
});
return;
}
closestElement.find(".wwlc-loader").hide();
fileField.prop("disabled", false);
})
.fail(function (){
closestElement.find(".inline-error").remove();
closestElement.append('<div class="inline-error">' +
MyAccountVars.upload_failed_message +
"</div>"
);
closestElement.find(".wwlc-loader").hide();
fileField.prop("disabled", false);
});
});
});