$(function() { $(".form-signin").on("submit", function(event) { event.preventDefault(); const form = $(this); const submitButton = form.find('button[type="submit"]'); submitButton.prop("disabled", true); $.ajax({ type: form.attr("method"), url: form.attr("action"), data: form.serialize(), dataType: "json", success: function(response) { handleRegisterResponse(response); }, error: function(jqXhr, textStatus, errorMessage) { console.log("Error: " + errorMessage); if (jqXhr.status === 503) { popZ("Estamos aplicando uma atualização, tente novamente mais tarde.", "warning"); return; } if (jqXhr.responseJSON) { handleRegisterResponse(jqXhr.responseJSON); return; } popZ("Não foi possível concluir o cadastro. Tente novamente mais tarde.", "error"); }, complete: function() { submitButton.prop("disabled", false); } }); }); }); function handleRegisterResponse(response) { switch (response.result) { case "registration_created": popZ( "Cadastro realizado! Enviamos um link de ativação para o seu e-mail.", "success", "/login" ); break; case "activation_renewed": popZ( "Seu link de ativação expirou. Enviamos um novo link para o seu e-mail.", "success", "/login" ); break; case "activation_pending": popZ( "Seu cadastro está pendente. O e-mail de ativação já foi enviado.", "warning" ); break; case "email_in_use": popZ( "Este e-mail já pertence a uma conta ativa.", "warning", "/login" ); break; case "activation_email_failed": popZ( "O cadastro não foi concluído porque não conseguimos enviar o e-mail de ativação. Tente novamente.", "error" ); break; case "registration_failed": default: popZ( "Não foi possível concluir o cadastro. Tente novamente mais tarde.", "error" ); break; } }