1// Handle the password reset form where user enters a new password. 2(function($) { 3 if (window.location.hash === "#confirmed") { 4 // Redirect to startpage, user probably reloaded the page. 5 window.location.href = "/"; 6 } 7 8 var form = $("form.prenly-confirm-password-reset"); 9 if (!form.length) { 10 return; 11 } 12 var formFieldPrefix = "prenly_auth_"; 13 14 var failMessageElement = $(".prenly-confirm-password-reset-fail-message"); 15 var successMessageElement = $(".prenly-confirm-password-reset-success-message"); 16 var noTokenElement = $(".prenly-confirm-password-reset-no-token"); 17 18 if (PrenlyAuthConfirmPasswordReset.token === null) { 19 // No token is provided. 20 if (noTokenElement.length) { 21 form.remove(); 22 noTokenElement.show(); 23 } 24 else { 25 form.replaceWith( 26 $("<div>") 27 .addClass("prenly-confirm-password-reset-no-token") 28 .text("Technical error. Please check the link provided in your confirmation e-mail.") 29 ); 30 } 31 } 32 33 form.show().on("submit", function(event) { 34 event.preventDefault(); 35 36 // Validation is made in the Ajax backend. 37 var postData = { 38 api: 'account', 39 action: 'prenly_confirm_password_reset', 40 security: PrenlyAuthConfirmPasswordReset.security 41 }; 42 43 var fieldsToSubmit = { 44 "token": PrenlyAuthConfirmPasswordReset.token, 45 "password1": form.find("input[name=password1]").val(), 46 "password2": form.find("input[name=password2]").val() 47 }; 48 for (var fieldName in fieldsToSubmit) { 49 postData[formFieldPrefix + fieldName] = fieldsToSubmit[fieldName]; 50 } 51 52 // Execute the Ajax request. 53 $.post(PrenlyAuthConfirmPasswordReset.ajaxurl, postData) 54 .done(function(response) { 55 try { 56 var response = JSON.parse(response); 57 } 58 catch (err) { 59 var response = Object; 60 response.status = 'error'; 61 response.message = err.message; 62 } 63 64 var foldOutOrAlert = function(element, message) { 65 if (element.length) { 66 element.show(); 67 } else { 68 alert(message); 69 } 70 }; 71 72 if (response.status === "success") { 73 // Change the url to avoid reloading. 74 window.location.href = window.location.href + "#confirmed"; 75 76 failMessageElement.hide(); 77 $(".prenly-close-on-success").hide(); 78 form.hide().get(0).reset(); 79 foldOutOrAlert(successMessageElement, response.message); 80 } else if (response.status === "fail") { 81 failMessageElement.find(".message-placeholder").text(response.message); 82 foldOutOrAlert(failMessageElement, response.message); 83 } else { 84 failMessageElement.find(".message-placeholder").text(response.message); 85 foldOutOrAlert(failMessageElement, response.message); 86 } 87 }) 88 .fail(function() { 89 alert('A technical error has occured. Please try again later.'); 90 }) 91 ; 92 }); 93})(jQuery);
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.